{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c2b152b9",
   "metadata": {},
   "source": [
    "# Data Preprocessing Steps"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "607351b4",
   "metadata": {},
   "source": [
    "## Step 1: Importing the Libraries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "91f03808",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "aa7431bc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Country</th>\n",
       "      <th>Age</th>\n",
       "      <th>Salary</th>\n",
       "      <th>Purchased</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>France</td>\n",
       "      <td>44.0</td>\n",
       "      <td>72000.0</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Spain</td>\n",
       "      <td>27.0</td>\n",
       "      <td>48000.0</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Germany</td>\n",
       "      <td>30.0</td>\n",
       "      <td>54000.0</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Spain</td>\n",
       "      <td>38.0</td>\n",
       "      <td>61000.0</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Germany</td>\n",
       "      <td>40.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>France</td>\n",
       "      <td>35.0</td>\n",
       "      <td>58000.0</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Spain</td>\n",
       "      <td>NaN</td>\n",
       "      <td>52000.0</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>France</td>\n",
       "      <td>48.0</td>\n",
       "      <td>79000.0</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>Germany</td>\n",
       "      <td>50.0</td>\n",
       "      <td>83000.0</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>France</td>\n",
       "      <td>37.0</td>\n",
       "      <td>67000.0</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Country   Age   Salary Purchased\n",
       "0   France  44.0  72000.0        No\n",
       "1    Spain  27.0  48000.0       Yes\n",
       "2  Germany  30.0  54000.0        No\n",
       "3    Spain  38.0  61000.0        No\n",
       "4  Germany  40.0      NaN       Yes\n",
       "5   France  35.0  58000.0       Yes\n",
       "6    Spain   NaN  52000.0        No\n",
       "7   France  48.0  79000.0       Yes\n",
       "8  Germany  50.0  83000.0        No\n",
       "9   France  37.0  67000.0       Yes"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 创建数据\n",
    "\n",
    "import pandas as pd\n",
    "\n",
    "# 数据\n",
    "data = {\n",
    "    \"Country\": [\"France\", \"Spain\", \"Germany\", \"Spain\", \"Germany\", \"France\", \"Spain\", \"France\", \"Germany\", \"France\"],\n",
    "    \"Age\": [44, 27, 30, 38, 40, 35, None, 48, 50, 37],\n",
    "    \"Salary\": [72000, 48000, 54000, 61000, None, 58000, 52000, 79000, 83000, 67000],\n",
    "    \"Purchased\": [\"No\", \"Yes\", \"No\", \"No\", \"Yes\", \"Yes\", \"No\", \"Yes\", \"No\", \"Yes\"]\n",
    "}\n",
    "\n",
    "# 创建 DataFrame\n",
    "df = pd.DataFrame(data)\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5a6eccec",
   "metadata": {},
   "source": [
    "## Step 2: Importing the Dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "614f6eb1",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 复制数据集，并将其赋值给dataset\n",
    "dataset = df.copy()\n",
    "# 从dataset中取出最后一行作为Y，其余行作为X\n",
    "X = dataset.iloc[:, :-1].values\n",
    "Y = dataset.iloc[:, 3].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "6fd65829",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([['France', 44.0, 72000.0],\n",
       "       ['Spain', 27.0, 48000.0],\n",
       "       ['Germany', 30.0, 54000.0],\n",
       "       ['Spain', 38.0, 61000.0],\n",
       "       ['Germany', 40.0, nan],\n",
       "       ['France', 35.0, 58000.0],\n",
       "       ['Spain', nan, 52000.0],\n",
       "       ['France', 48.0, 79000.0],\n",
       "       ['Germany', 50.0, 83000.0],\n",
       "       ['France', 37.0, 67000.0]], dtype=object)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X # 输出的是array"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a70f35df",
   "metadata": {},
   "source": [
    " Numpy Array 是一个多维数组对象，用于存储和处理数据。在 Numpy 中，所有的数据都是以多维数组的形式进行存储的。Numpy Array 是 Python 中 Numpy 库中最重要的数据结构，它提供了丰富的数学函数和方法，用于处理和分析数据。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9fda91f2",
   "metadata": {},
   "source": [
    "## Step 3: Handling the Missing Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "e21ed335",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入SimpleImputer类\n",
    "from sklearn.impute import SimpleImputer\n",
    "# 创建一个SimpleImputer实例，参数为缺失值和策略\n",
    "imputer = SimpleImputer(missing_values=np.nan, strategy='mean')\n",
    "# 使用fit函数训练模型，参数为X[:, 1:3]\n",
    "imputer = imputer.fit(X[:, 1:3])\n",
    "# 使用transform函数转换数据，参数为X[:, 1:3]\n",
    "X[:, 1:3] = imputer.transform(X[:, 1:3])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f222a00d",
   "metadata": {},
   "source": [
    "这段代码的主要目的是对缺失值进行填充。在机器学习或数据处理中，通常会碰到存在缺失值的数据。缺失值是指由于某种原因，某个特征或特征值被忽略或未记录。这可能会导致模型训练失败或得到不准确的结果。\n",
    "\n",
    "一种常用的缺失值处理方法是使用缺失值填充。简单填充（SimpleImputer）类可以用来对缺失值进行填充。它有多种填充策略，如平均值、中位数、最频繁出现的值等。在这个例子中，我们使用了平均值填充策略。\n",
    "\n",
    "具体来说，代码首先导入了简单填充类（SimpleImputer），然后创建了一个简单填充实例，指定缺失值为np.nan（表示缺失值用原数据中的平均值填充）。接下来，我们使用fit函数训练模型，将X[:, 1:3]作为训练数据。然后，我们使用transform函数对原始数据进行转换，将X[:, 1:3]替换为填充后的数据。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "fd7339ff",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[44.0, 72000.0],\n",
       "       [27.0, 48000.0],\n",
       "       [30.0, 54000.0],\n",
       "       [38.0, 61000.0],\n",
       "       [40.0, 63777.77777777778],\n",
       "       [35.0, 58000.0],\n",
       "       [38.77777777777778, 52000.0],\n",
       "       [48.0, 79000.0],\n",
       "       [50.0, 83000.0],\n",
       "       [37.0, 67000.0]], dtype=object)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X[ : , 1:3]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "81214a1b",
   "metadata": {},
   "source": [
    "## Step 4: Encoding Categorical Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "e08adc69",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入LabelEncoder和OneHotEncoder\n",
    "from sklearn.preprocessing import LabelEncoder, OneHotEncoder\n",
    "# 导入ColumnTransformer\n",
    "from sklearn.compose import ColumnTransformer\n",
    "\n",
    "# 对第一列数据进行LabelEncoder编码\n",
    "labelencoder_X = LabelEncoder()\n",
    "X[:, 0] = labelencoder_X.fit_transform(X[:, 0])\n",
    "\n",
    "# 将第一列数据进行OneHotEncoder编码\n",
    "ct = ColumnTransformer([(\"Country\", OneHotEncoder(), [0])], remainder = 'passthrough')\n",
    "X = ct.fit_transform(X)\n",
    "\n",
    "# 对第二列数据进行LabelEncoder编码\n",
    "labelencoder_Y = LabelEncoder()\n",
    "Y = labelencoder_Y.fit_transform(Y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "ed0889c0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.0, 1.0, 0.0, 0.0, 44.0, 72000.0],\n",
       "       [1.0, 0.0, 0.0, 1.0, 27.0, 48000.0],\n",
       "       [1.0, 0.0, 1.0, 0.0, 30.0, 54000.0],\n",
       "       [1.0, 0.0, 0.0, 1.0, 38.0, 61000.0],\n",
       "       [1.0, 0.0, 1.0, 0.0, 40.0, 63777.77777777778],\n",
       "       [0.0, 1.0, 0.0, 0.0, 35.0, 58000.0],\n",
       "       [1.0, 0.0, 0.0, 1.0, 38.77777777777778, 52000.0],\n",
       "       [0.0, 1.0, 0.0, 0.0, 48.0, 79000.0],\n",
       "       [1.0, 0.0, 1.0, 0.0, 50.0, 83000.0],\n",
       "       [0.0, 1.0, 0.0, 0.0, 37.0, 67000.0]], dtype=object)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "9fb7ac3e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 0, 0, 1, 1, 0, 1, 0, 1], dtype=int64)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Y"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0258e3b7",
   "metadata": {},
   "source": [
    "## Step 5: Splitting the Dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "4efb7730",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入sklearn的train_test_split函数，用于将数据集X和Y按照test_size的比例分割成训练集和测试集\n",
    "from sklearn.model_selection import train_test_split\n",
    "# 将X和Y按照test_size的比例分割成训练集和测试集，test_size为测试集的比例，random_state为随机种子\n",
    "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b7c7d82b",
   "metadata": {},
   "source": [
    "## Step 6: Feature Scaling"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "55874325",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入sklearn中的StandardScaler模块\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "# 实例化StandardScaler对象\n",
    "sc_X = StandardScaler()\n",
    "# 对训练集进行标准化处理\n",
    "X_train = sc_X.fit_transform(X_train)\n",
    "# 对测试集进行标准化处理\n",
    "X_test = sc_X.transform(X_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "20f50b58",
   "metadata": {},
   "source": [
    "这段代码是使用Python的sklearn库对训练集和测试集进行标准化（归一化）处理。标准化是一种常用的数据预处理方法，用于将不同尺度和范围的特征值转换为同一尺度。这样可以避免不同特征之间由于尺度和范围的不同导致的影响。\n",
    "\n",
    "实现原理：\n",
    "1. 导入sklearn中的StandardScaler模块，该模块包含一种称为标准化的方法，用于归一化数据。\n",
    "2. 实例化StandardScaler对象，并将其赋值给变量sc_X。\n",
    "3. 使用fit_transform()方法对训练集进行标准化处理，该方法会计算训练集的均值和标准差，并将训练集中的数据转换为标准化的形式。\n",
    "4. 使用transform()方法对测试集进行标准化处理，该方法会使用在训练集上计算的均值和标准差来对测试集的数据进行转换。\n",
    "\n",
    "用途：\n",
    "标准化通常用于特征工程（Feature Engineering），特别是当特征值具有不同的单位或者量级时。通过标准化，可以确保不同特征之间的可比性，有助于模型学习和预测。\n",
    "\n",
    "注意事项：\n",
    "1. 标准化处理应该应用在特征值上，而不是标签（target）。\n",
    "2. 确保训练集和测试集使用相同的索引，以确保标准化处理的结果在两个数据集之间的一致性。\n",
    "3. 由于StandardScaler对象需要训练集来计算均值和标准差，因此对于时间序列数据或者有顺序的分类数据，应该在训练集上进行训练，然后将训练集的结果应用到测试集上。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "21f4de79",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+UAAAIjCAYAAABlBbqXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAACYQElEQVR4nO3deXxU1cH/8e8QSMJiwmKAQMIiqKAiIi51SQG1BVREIu4/BbXUBRTq7vM8gtSFVq0NKkVFBRdAKwali1oX0LivaG2VAgaEGBZFEgHZJuf3x+2MmWSSzEzuzF3m83695gW5c2fmzJ1kvvece5aAMcYIAAAAAACkXAunCwAAAAAAQLqiUg4AAAAAgEOolAMAAAAA4BAq5QAAAAAAOIRKOQAAAAAADqFSDgAAAACAQ6iUAwAAAADgECrlAAAAAAA4hEo5AAAAAAAOoVIOuNxdd92l/fbbTxkZGTrssMOcLo6jAoGAbrnllvDP8+bNUyAQ0Jo1axwrEwDAfZ544gn169dPrVq1Uvv27Z0ujieMHz9evXr1SslruT2/hw4dqqFDh4Z/XrNmjQKBgObNm+dYmeBvVMoBG4TCpfatc+fOGjZsmF544YWEn/cf//iHrr/+eh133HGaO3eu7rjjDhtLnbiamho9/vjjOvroo9WxY0fts88+OuCAA3ThhRfq3Xffdbp4AAAf+9Of/qRAIKCjjz466v1ffvmlxo8frz59+mjOnDl66KGHtGPHDt1yyy1atmxZSsu6efNmTZ48Wf369VPr1q3VuXNnHXXUUbrhhhu0bdu28H4LFixQSUlJSsvmFW+++aZGjhyp7t27Kzs7Wz169NCoUaO0YMECp4sG2Kal0wUA/OS3v/2tevfuLWOMNm7cqHnz5unkk0/WX/7yF5166qlxP99rr72mFi1a6JFHHlFmZmYSSpyYq666SrNmzdLo0aN1/vnnq2XLllqxYoVeeOEF7bfffvrZz36WknJccMEFOuecc5SVlZWS1wMAOG/+/Pnq1auX3n//fa1atUp9+/aNuH/ZsmWqqanRzJkzw/d9++23mj59uiRFXAFNpi1btuiII45QdXW1Lr74YvXr10/fffedPvvsM82ePVuXX3652rVrJ8mqlH/++eeaMmVKSsrmFc8884zOPvtsHXbYYZo8ebI6dOig8vJyvfHGG5ozZ47OO++8lJSjZ8+e+vHHH9WqVauUvB7SD5VywEYjR47UEUccEf75kksuUZcuXbRw4cKEKuWbNm1S69atbauQG2O0c+dOtW7dOuHn2Lhxo/70pz9pwoQJeuihhyLuKykp0ebNm5tbzJhlZGQoIyMjZa8HAHBWeXm53n77bZWWlurSSy/V/PnzNW3atIh9Nm3aJEkp6ba+fft2tW3bNup9jzzyiL7++mu99dZbOvbYYyPuq66udlVju91qamq0e/duZWdnN+t5brnlFh100EF699136x2v0OecCoFAoNnvBWgM3deBJGrfvr1at26tli0j279qampUUlKigw8+WNnZ2erSpYsuvfRSff/99+F9AoGA5s6dq+3bt4e7xIfGMu3du1e33nqr+vTpo6ysLPXq1Uv/8z//o127dkW8Tq9evXTqqafqpZde0hFHHKHWrVvrwQcflCRt3bpVU6ZMUWFhobKystS3b1/9/ve/V01NTaPvqby8XMYYHXfccfXuC3Xbr23r1q36zW9+o169eikrK0sFBQW68MIL9e2330qSdu/eralTp2rw4MHKzc1V27ZtVVRUpKVLlzZ5fKONSQu95zfffFNHHXWUsrOztd9+++nxxx+v9/jPPvtMQ4YMUevWrVVQUKDbbrtNc+fOdfU4NwBIZ/Pnz1eHDh10yimnaOzYsZo/f37E/b169QpX0vPy8hQIBDR+/Hjl5eVJkqZPnx7O1NpzlHz55ZcaO3asOnbsqOzsbB1xxBFasmRJxHOHMuf111/XFVdcoc6dO6ugoKDBsq5evVoZGRlRe4/l5OSEK3lDhw7V3/72N61duzZcttDY7lgzMjTm+e6779ZDDz0UPj848sgj9cEHH9R7/eeee06HHHKIsrOzdcghh2jx4sVR38Pdd9+tY489Vp06dVLr1q01ePBgLVq0qN5+gUBAkyZN0vz583XwwQcrKytLL774oiTpX//6l0444YSIrG3qXKP2MTzyyCOjNmDUPd8I9Y4YMGCAsrOzlZeXpxEjRujDDz8M7zN37lydcMIJ6ty5s7KysnTQQQdp9uzZTZYj2pjy8ePHq127dqqoqNDpp5+udu3aKS8vT9dee62CwWDE47/77jtdcMEFysnJUfv27TVu3Dh9+umnjFNHGFfKARtVVVXp22+/lTFGmzZt0n333adt27bp//2//xex36WXXqp58+bpoosu0lVXXaXy8nLdf//9+uSTT/TWW2+pVatWeuKJJ/TQQw/p/fff18MPPyxJ4Zb2X/3qV3rsscc0duxYXXPNNXrvvfc0Y8YMffHFF/WCdcWKFTr33HN16aWXasKECTrwwAO1Y8cODRkyRBUVFbr00kvVo0cPvf3227rppptUWVnZ6Li2nj17SrK6lJ155plq06ZNg/tu27ZNRUVF+uKLL3TxxRfr8MMP17fffqslS5Zo/fr12nfffVVdXa2HH35Y5557riZMmKAffvhBjzzyiIYPH673338/ocntVq1apbFjx+qSSy7RuHHj9Oijj2r8+PEaPHiwDj74YElSRUWFhg0bpkAgoJtuuklt27bVww8/TFd4AHCx+fPnq7i4WJmZmTr33HM1e/ZsffDBBzryyCMlWT22Hn/8cS1evFizZ89Wu3btNGDAAP3sZz/T5ZdfrjFjxqi4uFiSdOihh0qyKo3HHXecunfvrhtvvFFt27bVn//8Z51++ul69tlnNWbMmIgyXHHFFcrLy9PUqVO1ffv2Bsvas2dPBYNBPfHEExo3blyD+/3v//6vqqqqtH79ev3xj3+UpHC39ngzcsGCBfrhhx906aWXKhAI6M4771RxcbG++uqrcNfrf/zjHzrjjDN00EEHacaMGfruu+900UUXRW1gmDlzpk477TSdf/752r17t5566imdeeaZ+utf/6pTTjklYt/XXntNf/7znzVp0iTtu+++6tWrlzZs2KBhw4Zp79694WP70EMPxdxjr2fPnnr11Ve1fv36RhtAJKt34rx58zRy5Ej96le/0t69e1VWVqZ333033Itx9uzZOvjgg3XaaaepZcuW+stf/qIrrrhCNTU1mjhxYkxlqi0YDGr48OE6+uijdffdd+uVV17RH/7wB/Xp00eXX365JKuxYNSoUXr//fd1+eWXq1+/fnr++ecb/Z1AGjIAmm3u3LlGUr1bVlaWmTdvXsS+ZWVlRpKZP39+xPYXX3yx3vZx48aZtm3bRuy3fPlyI8n86le/ith+7bXXGknmtddeC2/r2bOnkWRefPHFiH1vvfVW07ZtW/Of//wnYvuNN95oMjIyzNdff93o+73wwguNJNOhQwczZswYc/fdd5svvvii3n5Tp041kkxpaWm9+2pqaowxxuzdu9fs2rUr4r7vv//edOnSxVx88cUR2yWZadOmhX8OHffy8vJ67/mNN94Ib9u0aZPJysoy11xzTXjblVdeaQKBgPnkk0/C27777jvTsWPHes8JAHDehx9+aCSZl19+2Rhj5UhBQYGZPHlyxH7Tpk0zkszmzZvD2zZv3lwvQ0JOPPFEM2DAALNz587wtpqaGnPsscea/fffP7wtlDnHH3+82bt3b5Pl3bBhg8nLyzOSTL9+/cxll11mFixYYLZu3Vpv31NOOcX07Nmz3vZYM7K8vNxIMp06dTJbtmwJb3/++eeNJPOXv/wlvO2www4z+fn5EeX4xz/+YSTVK8OOHTsift69e7c55JBDzAknnBCxXZJp0aKF+de//hWxfcqUKUaSee+998LbNm3aZHJzc2PK2kceecRIMpmZmWbYsGHm5ptvNmVlZSYYDEbs99prrxlJ5qqrrqr3HKHzjWjvxxhjhg8fbvbbb7+IbUOGDDFDhgwJ/xw6vnPnzg1vGzdunJFkfvvb30Y8dtCgQWbw4MHhn5999lkjyZSUlIS3BYNBc8IJJ9R7TqQvuq8DNpo1a5Zefvllvfzyy3ryySc1bNgw/epXv1JpaWl4n2eeeUa5ubn6xS9+oW+//TZ8Gzx4sNq1a9dkt+2///3vkqSrr746Yvs111wjSfrb3/4Wsb13794aPnx4xLZnnnlGRUVF6tChQ0QZTjrpJAWDQb3xxhuNlmHu3Lm6//771bt3by1evFjXXnut+vfvrxNPPFEVFRXh/Z599lkNHDiw3lUGyerqJlnjwkPd0mpqarRlyxbt3btXRxxxhD7++ONGy9GQgw46SEVFReGf8/LydOCBB+qrr74Kb3vxxRd1zDHHRFxl6Nixo84///yEXhMAkFzz589Xly5dNGzYMElWjpx99tl66qmn6nUXjtWWLVv02muv6ayzztIPP/wQzsPvvvtOw4cP18qVKyNyTZImTJgQ03wmXbp00aeffqrLLrtM33//vR544AGdd9556ty5s2699VYZY5p8jngz8uyzz1aHDh3CP4eyMJR/lZWVWr58ucaNG6fc3Nzwfr/4xS900EEH1Xu+2le0v//+e1VVVamoqCjqaw8ZMqTec/z973/Xz372Mx111FHhbXl5eTFn7cUXX6wXX3xRQ4cO1Ztvvqlbb71VRUVF2n///fX222+H93v22WcVCATqzS8g/XS+Uff9hHo3DhkyRF999ZWqqqpiKlNdl112WcTPRUVF9c43WrVqpQkTJoS3tWjRIqEr8/AvKuWAjY466iiddNJJOumkk3T++efrb3/7mw466CBNmjRJu3fvliStXLlSVVVV6ty5s/Ly8iJu27Zta3LikrVr16pFixb1Zpvt2rWr2rdvr7Vr10Zs7927d73nWLlypV588cV6r3/SSSdJanrylFCYfPTRR/r222/1/PPPa+TIkXrttdd0zjnnhPdbvXq1DjnkkEafS5Iee+wxHXroocrOzlanTp2Ul5env/3tbwkHZI8ePept69ChQ8SY/bVr19Y7hpKibgMAOCsYDOqpp57SsGHDVF5erlWrVmnVqlU6+uijtXHjRr366qsJPe+qVatkjNHNN99cLxNDFby6mRgtVxuSn5+v2bNnq7KyUitWrNC9994b7vr+yCOPxPQc8WRk3fwLVdBD+Rc6R9h///3rPfbAAw+st+2vf/2rfvaznyk7O1sdO3ZUXl6eZs+eHfW1ox2XtWvXxvxaDRk+fLheeuklbd26VW+88YYmTpyotWvX6tRTTw1/NqtXr1a3bt3UsWPHRp/rrbfe0kknnaS2bduqffv2ysvL0//8z/9IUkLnHKGx67VFO9/Iz8+vN9yP8w3UxphyIIlatGihYcOGaebMmVq5cqUOPvhg1dTUqHPnzvUmpwmp++XekNotv42JNm6rpqZGv/jFL3T99ddHfcwBBxwQ03NLUqdOnXTaaafptNNO09ChQ/X6669r7dq14bHnTXnyySc1fvx4nX766bruuuvUuXNnZWRkaMaMGVq9enXM5aitoSsYsVyVAAC4z2uvvabKyko99dRTeuqpp+rdP3/+fP3yl7+M+3lDE45de+219XqVhdStPCWygkkgENABBxygAw44QKeccor2339/zZ8/X7/61a8afVy8GWln/pWVlem0007Tz3/+c/3pT39Sfn6+WrVqpblz50ZdI7w5K7vEok2bNioqKlJRUZH23XdfTZ8+XS+88ELMY7NXr16tE088Uf369dM999yjwsJCZWZm6u9//7v++Mc/xjz5XG2sAAO7UCkHkmzv3r2SrEnPJKlPnz565ZVXdNxxxyUUYD179lRNTY1Wrlyp/v37h7dv3LhRW7dujaky3KdPH23bti18ZdwuRxxxhF5//XVVVlaqZ8+e6tOnjz7//PNGH7No0SLtt99+Ki0tjWhoiNYFzU49e/bUqlWr6m2Ptg0A4Kz58+erc+fOmjVrVr37SktLtXjxYj3wwAMN5mpDDdn77befJKlVq1a2Z2JD9ttvP3Xo0EGVlZVNls/ujAydI6xcubLefStWrIj4+dlnn1V2drZeeumliElQ586dG9frxfJa8QpN3BY6hn369NFLL72kLVu2NHi1/C9/+Yt27dqlJUuWRPQoiGW1l+bo2bOnli5dqh07dkRcLed8A7XRfR1Ioj179ugf//iHMjMzwxXos846S8FgULfeemu9/ffu3autW7c2+pwnn3yyJNWbIf2ee+6RpHqzoUZz1lln6Z133tFLL71U776tW7eGGxKi2bBhg/7973/X27579269+uqrEV3rzzjjDH366adRl1oJtdqHWplrt+K/9957euedd5p8H80xfPhwvfPOO1q+fHl425YtWxrswQAAcMaPP/6o0tJSnXrqqRo7dmy926RJk/TDDz/UW8KstlBlqG7Gdu7cWUOHDtWDDz4YUUkO2bx5c8Llfu+996LOzv7+++/ru+++i+jC3bZt26jdp+3OyPz8fB122GF67LHHIl7v5ZdfrpftGRkZCgQCEeP116xZo+eeey7m1zv55JP17rvv6v333w9v27x5c8xZ29CwhND8OqFjeMYZZ8gYo+nTp9fbt7HzjaqqqrgaGRIxfPhw7dmzR3PmzAlvq6mpidrAhPTFlXLARi+88IK+/PJLSdYYtAULFmjlypW68cYblZOTI8maCOXSSy/VjBkztHz5cv3yl79Uq1attHLlSj3zzDOaOXOmxo4d2+BrDBw4UOPGjdNDDz2krVu3asiQIXr//ff12GOP6fTTTw9PgNOY6667TkuWLNGpp54aXips+/bt+uc//6lFixZpzZo12nfffaM+dv369TrqqKN0wgkn6MQTT1TXrl21adMmLVy4UJ9++qmmTJkSfux1112nRYsW6cwzz9TFF1+swYMHa8uWLVqyZIkeeOABDRw4UKeeeqpKS0s1ZswYnXLKKSovL9cDDzyggw46KNy7IBmuv/56Pfnkk/rFL36hK6+8MrwkWo8ePbRly5aYhwcAAJJryZIl+uGHH3TaaadFvf9nP/uZ8vLyNH/+fJ199tlR92ndurUOOuggPf300zrggAPUsWNHHXLIITrkkEM0a9YsHX/88RowYIAmTJig/fbbTxs3btQ777yj9evX69NPP02o3E888YTmz5+vMWPGaPDgwcrMzNQXX3yhRx99VNnZ2eGxzJI0ePBgPf3007r66qt15JFHql27dho1alRSMnLGjBk65ZRTdPzxx+viiy/Wli1bdN999+nggw+OeM5TTjlF99xzj0aMGKHzzjtPmzZt0qxZs9S3b1999tlnMb3W9ddfryeeeEIjRozQ5MmTw0ui9ezZM6bnGD16tHr37q1Ro0apT58+2r59u1555RX95S9/0ZFHHqlRo0ZJkoYNG6YLLrhA9957r1auXKkRI0aopqZGZWVlGjZsmCZNmqRf/vKXyszM1KhRo3TppZdq27ZtmjNnjjp37hy1QcYup59+uo466ihdc801WrVqlfr166clS5Zoy5YtkmIfjgifc2rad8BPoi2Jlp2dbQ477DAze/bsiOU4Qh566CEzePBg07p1a7PPPvuYAQMGmOuvv95888034X2iLYlmjDF79uwx06dPN7179zatWrUyhYWF5qabbopYzsUYa3mwU045JWqZf/jhB3PTTTeZvn37mszMTLPvvvuaY4891tx9991m9+7dDb7X6upqM3PmTDN8+HBTUFBgWrVqZfbZZx9zzDHHmDlz5tR7r999952ZNGmS6d69u8nMzDQFBQVm3Lhx5ttvvzXGWEuV3HHHHaZnz54mKyvLDBo0yPz1r38148aNq7c0i2JcEi3ae667vIkxxnzyySemqKjIZGVlmYKCAjNjxgxz7733Gklmw4YNDR4DAEDqjBo1ymRnZ5vt27c3uM/48eNNq1atzLfffht1STRjjHn77bfN4MGDTWZmZr08Wb16tbnwwgtN165dTatWrUz37t3NqaeeahYtWhTeJ5Q5H3zwQUzl/uyzz8x1111nDj/8cNOxY0fTsmVLk5+fb84880zz8ccfR+y7bds2c95555n27dtHLE0Wa0aGluy666676pWj7ns1xlqmq3///iYrK8scdNBBprS0NGruPvLII2b//fc3WVlZpl+/fmbu3Lnh41v3NSZOnNjgcRgyZIjJzs423bt3N7feemt4qbOmlkRbuHChOeecc0yfPn1M69atTXZ2tjnooIPM//7v/5rq6uqIfffu3Wvuuusu069fP5OZmWny8vLMyJEjzUcffRTeZ8mSJebQQw812dnZplevXub3v/+9efTRR+uVJdYl0aKdo0U7Pps3bzbnnXee2WeffUxubq4ZP368eeut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8ngx6+OulPfu3VvLly+vt/3FF19U//797SgTkHrffVd/25YtjQZorHPHbKhoYjkWyVqOxcNd2xpbcSbku++kM84grJuS6nGLXbt2Dd9yc3MVCATCP3/55ZfaZ5999MILL2jw4MHKysrSm2++qdWrV2v06NHq0qWL2rVrpyOPPFKvvPJKxPPW7dIWCAT08MMPa8yYMWrTpo32339/LVmyJHx/3S5t8+bNU/v27fXSSy+pf//+ateunUaMGKHKWn94e/fu1VVXXaX27durU6dOuuGGGzRu3DidfvrpDb7fJUuW6KyzztIll1yivn376uCDD9a5556r22+/PWK/hx9+WP3791d2drb69eunP/3pT+H7evfuLUkaNGiQAoGAhrp2hqv4OZXxu3fv1kcffaSTTjopvK1FixY66aST9M4779Tbf9euXaquro64AU1KYtZXVqrp5dckT+c9WW8fsn6rJLK+trgr5VdffbUmTpyop59+WsYYvf/++7r99tt100036frrr09GGYHkCSVMNE0EaKxzx/TbHG8zu/c0dSWhtmiH0+dD72Lm1gssN954o373u9/piy++0KGHHqpt27bp5JNP1quvvqpPPvlEI0aM0KhRo/T11183+jzTp0/XWWedpc8++0wnn3yyzj//fG3ZsqXB/Xfs2KG7775bTzzxhN544w19/fXXEa35v//97zV//nzNnTtXb731lqqrq/Xcc881WoauXbvq3XffDU9gFs38+fM1depU3X777friiy90xx136Oabb9Zjjz0mSeFxzq+88ooqKytV6qOzT6cy/ttvv1UwGFSXLl0itnfp0kUbNmyot/+MGTOUm5sbvhUWFiatbPCBFGR9fr4SuKzuLWS9Pcj6SGT9f8Xcsb6WJ5980vTt29cEAgETCARM9+7dzcMPP5zIUyUd48zQqKVLGx4oVvu2dGm9h4bGmUUbolZ7nFnwyQWxvcaCBSl/+3ZZEONbjHY4/TT0rjnjzBIat2izuXPnmtzc3PDPS5cuNZLMc8891+RjDz74YHPfffeFf+7Zs6f54x//GP5Zkvm///u/8M/btm0zkswLL7wQ8Vrff/99uCySzKpVq8KPmTVrlunSpUv45y5dupi77ror/PPevXtNjx49zOjRoxss5zfffGN+9rOfGUnmgAMOMOPGjTNPP/20CQaD4X369OljFtT5e7z1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/yJ++63UpYt0wAFS69ZOlww+EXelvPZEbJIUCASUl5enE044QX/4wx/sKlfCbrrpJl199dXhn6urq1VYWOhgiRBP0sUbcvHun8gMoJ5fzgPJVfuXcOdO63IJ4FFuz3i4GFkPvwv9Ioayni7rsFHclfKamppklKOerl27SpI2btyo/Fqtrxs3btRhhx3W4OOysrKUlZWV7OIhHi5LukRmAPX0ch4AEKNUZTx8iKwHgITFPab8t7/9rXbs2FFv+48//qjf/va3thRKknr37q2uXbvq1VdfDW+rrq7We++9p2OOOca210GKJDIwLIkSmQGUMWQA/C5VGQ+fIusBICFxV8qnT5+ubdu21du+Y8eOuMdyb9u2TcuXL9fy5cslWZO7LV++XF9//bUCgYCmTJmi2267TUuWLNE///lPXXjhherWrVu97nXwCB8knSeX88BPgkFp2TJp4ULr34YWl08jgUCg0dstt9zSrOeOZbWM119/XSeccII6duyoNm3aaP/999e4ceO0e/fumF+rV69eKikpSbissNiZ8UhTZD2cRtbXQ9a7X9zd140xCkQZQ/Hpp5+qY8eOcT3Xhx9+qGHDhoV/Do0FHzdunObNm6frr79e27dv169//Wtt3bpVxx9/vF588UVlZ2fHW2y4BTOjwCmlpdH7JM6c6b6TxWAwvj6XzVBZa8bkp59+WlOnTtWKFSvC29olee3Vf//73xoxYoSuvPJK3XvvvWrdurVWrlypZ599VkFOpFLOzoxHGiPr4RSyPiqy3gNMjNq3b286dOhgWrRoEf5/6JaTk2NatGhhrrjiilifLmWqqqqMJFNVVeV0UQA45dlnjQkEjLFGOf50CwSs27PP2vIyP/74o/n3v/9tfvzxx+aVtaAgspwFBbaVsTFz5841ubm5EdvmzJlj+vXrZ7KyssyBBx5oZs2aFb5v165dZuLEiaZr164mKyvL9OjRw9xxxx3GGGN69uxpJIVvPXv2jPqaf/zjH02vXr2aLFtZWZk5/vjjTXZ2tikoKDBXXnml2bZtmzHGmCFDhkS8VhzRllSN/T64LZu8mvEhbjueABxA1seErLeXXVkf85XykpISGWN08cUXa/r06cqtteRPZmamevXqxVhvAO4TDFqt5tFmAzbGmoBoyhRrRiCn+yiWllqTJNUta0WFtT3FYzLnz5+vqVOn6v7779egQYP0ySefaMKECWrbtq3GjRune++9V0uWLNGf//xn9ejRQ+vWrdO6deskSR988IE6d+6suXPnasSIEcpo4Nh27dpVlZWVeuONN/Tzn/886j6rV6/WiBEjdNttt+nRRx/V5s2bNWnSJE2aNElz585VaWmpBg4cqF//+teaMGFC0o6Hn5HxADyNrE8YWe8S8bYGLFu2zOzevTvehzmG1nMgzS1dWr/VPNpt6dJmv1SzWs/37q3fal63pb+w0NovSeq2nvfp08csWLAgYp9bb73VHHPMMcYYY6688kpzwgknmJqamqjPJ8ksXry40dfcu3evGT9+vJFkunbtak4//XRz3333RXxnX3LJJebXv/51xOPKyspMixYtwse6Z8+e5o9//GOM7zQ1vHSlPMRrGR/i1uMJIEXI+piR9fayK+vjnuhtyJAhatWqlSRp586dqq6ujrgBbsf8H+6ze7e13MyVV1r/xjHnR9NqjaOyZb9kKSuLHANXlzHSunXWfimwfft2rV69WpdcconatWsXvt12221avXq1JGn8+PFavny5DjzwQF111VX6xz/+EffrZGRkaO7cuVq/fr3uvPNOde/eXXfccYcOPvjg8Bi4Tz/9VPPmzYsox/Dhw1VTU6Ny1oW3FRkPvyDr3ScYlF59Vbr5Zuv26qs2fi5kfULIeveIe6K3HTt26Prrr9ef//xnfffdd/XuZ7A+3MxL83+ki+uvl+65JzKYr71Wuvpq6c47bXiB/Hx790sWl51QhGbgnjNnjo4++uiI+0Ld0w4//HCVl5frhRde0CuvvKKzzjpLJ510khYtWhT363Xv3l0XXHCBLrjgAt1666064IAD9MADD4RnA7/00kt11VVX1Xtcjx49Enh3aAgZDz8g692ntFT69a+l2l8rt90mdeokPfSQDZ8LWZ8Qst494q6UX3fddVq6dKlmz56tCy64QLNmzVJFRYUefPBB/e53v0tGGQFbuGwIjycke2LQ66+X7ror+uuGtjdWMY+pfEVF1tlYRUX0sWaBgHV/UVHC78MWLjuh6NKli7p166avvvpK559/foP75eTk6Oyzz9bZZ5+tsWPHasSIEdqyZYs6duyoVq1aJVSJ69Chg/Lz87V9+3ZJ1gnBv//9b/Xt27fBx2RmZlJhtAEZD68j6+OX7KwvLZXOOCP6fd99Z9337LONfy5NlpGsTwhZ7yLx9psvLCw0S/87HmOfffYxK1euNMYY8/jjj5uRI0fG+3RJxzgzGOOKITzNsnevNQxqwQLr31SUM9kTg+7aZUxGRuNDvzIyrP2aXb7QjKx1Z2V104ysoV/SaDPHOjTObM6cOaZ169Zm5syZZsWKFeazzz4zjz76qPnDH/5gjDHmD3/4g1mwYIH54osvzIoVK8wll1xiunbtaoLBoDHGmP33399cfvnlprKy0mzZsiXqaz7wwAPmsssuMy+99JJZtWqV+fzzz831119vWrRoYZYtW2aMMebTTz81rVu3NhMnTjSffPKJ+c9//mOee+45M3HixPDz/OIXvzCnnXaaWb9+vdm8eXOSjlB8vDim3GsZH+LW44nU8nrWG5P6vE921jf1mdR+zYbea8xlJOtjQtbby66sj7tS3rZtW7N27VpjjDHdu3c37733njHGmK+++sq0bds23qdLOoIaxqR0/g/bObFqRipWFfnjH2P7TKLN55FQ+aIdyMJCWw9ks5dJSdEJRUOiLZMyf/58c9hhh5nMzEzToUMH8/Of/9yUlpYaY4x56KGHzGGHHWbatm1rcnJyzIknnmg+/vjj8GOXLFli+vbta1q2bNngMikff/yx+X//7/+Z3r17m6ysLNOpUyfz85//3CxZsiRiv/fff9/84he/MO3atTNt27Y1hx56qLn99tvD97/zzjvm0EMPNVlZWSaB9uak8GKl3GsZH+LW44nU8nLWG5P6vE9F1sf6mTT0ucRdRrK+SWS9vRyrlA8YMCDconHiiSeaa665xhhjzMyZM0337t3jfbqkI6hhjNXiHEsg1Jl80nEpWnIzQiyt2nl5DV/BjtWkSbF9JpMmxVe+RhuZm7gE0dwrFElbu9TmEwqkhhcr5V7L+BC3Hk+kllez3pjU532qsj7WzyTa55Jw3pP1SKGUr1MectFFF+nTTz/VkCFDdOONN2rUqFG6//77tWfPHt1zzz329KmHY5I9rsgpLhvCExOnltxsamJQSdq8WereXXrwwcTH5vXpk9h+8UxcOnRonTszMqJstLhmYqDiYutD9eMfIlyPjE8PZH1yyxEvJ/I+VVkfz7Guu2/CeU/Ww4ua2zqwZs0a8+yzz5pPP/20uU+VFLSex86JbtKp4oIhPHFzqhtePK3azWm9T3RMeTKuhNh1hcKW1nP4hhevlNfl9owP8crxdAOy3l1Zb4wzeZ+qrG/OmHK7856sRzI4tk55bTt37lTPnj1VXFysQw891I42AjgkNFtp3RbJ0GylpaXOlMsuGRlWK6hktTjXFvq5pMRdDZROrZoR7xWEKVMSW2c0M9Na9qwxV19t7Veb3VdCmrpCISX+HgEvI+P9h6x3X9ZLzuR9qrK+9mfSmJkz638uduY9WQ+3i7tSHgwGdeutt6p79+5q166dvvrqK0nSzTffrEceecT2AiL50uWLqrjYWgqle/fI7QUF7lwixalueKFVReqe0ERTu+tYIu68U7ruuvpBnJFhbY+2HFpT5QsEpMLC2Fc9iad7HOB3ZLx/kfXuzHrJmbxPZdYXF1tLnnXqVP++Tp0aXg7Nzrwn6+F2cVfKb7/9ds2bN0933nmnMmtdwjrkkEP08MMP21o4pEY6fVEVF0tr1khLl0oLFlj/lpe7M6TtrnzGKtZW7dqa03p/553Sjh3SH/8oTZpk/btjR8Prk9t9JSQZVyhMtLNepB0v/h6Q8f5F1rsz6yVn8j7VWV9cLG3cKL3yivR//2fdXnnF2tbQ52Jn3pP1SBa7fg/irpQ//vjjeuihh3T++ecro9ZfwcCBA/Xll1/aUiikllPdpJ0Smv/j3HOtf93WjS3EyW54oSsNeXmx7d/c1vvMTOsKzX33Wf/W7bLeUPnsuBJi5xWK0Hfi7t27Yy8AfGvHjh2SpFatWjlcktiR8f5F1jtdooY5lfepzvqMDOnEE6Vbb7VuJ57Y9HuyK+/tzPrQd3roOx7pza6sj3v29YqKCvXt27fe9pqaGu3Zs6dZhYEzvDpbaToIhVG0mUJLSpLb6l9cLJ16qhWE334bfZ9AwCqL3VfrY2HXxKWhKxQVFdG7dcbzHlu2bKk2bdpo8+bNatWqlVq0aNa0HfAoY4x27NihTZs2qX379hGVW7cj4/2LrHc3p/Le7Vkv2ZP3dmZ9RkaG2rdvr02bNkmS2rRpo0As4wDgK3ZnfdyV8oMOOkhlZWXq2bNnxPZFixZp0KBBzSoMnGHnFxXs5+SqGZmZ1lIoY8daP9f+/XDDpDmNrHoS13PMnGm9x0Cgee8xEAgoPz9f5eXlWrt2bfMKBs9r3769unbt6nQx4kLG+xdZ735O5b3bs15qft7bmfWSwt/toYo50pddWR93pXzq1KkaN26cKioqVFNTo9LSUq1YsUKPP/64/vrXvza7QEg9u7+o0kmq1nq1o/KZKCev1qeKne8xMzNT+++/P13Y01yrVq08dYU8hIz3L7I+calc192pvCfr43uPoUb4zp0704sojdmZ9QGTwOj0srIy/fa3v9Wnn36qbdu26fDDD9fUqVP1y1/+0pZC2am6ulq5ubmqqqpSTk6O08VxtdLS+l9UhYX++TK2W7TjVVBgnfT48XjVOyk5NqiMtx24fJ9EqTzxQnpzczZ5KeND3Hw83Yasjw9ZT9YDiYonm2KulH/11Vfq3bu358ZMENTx4YsqNqG1Xuv+9YT+PNy67Ipt0u0sBbCZ27LJqxkf4rbj6XZkfWzIerIeaI6kVMozMjJUWVmpzp07S5LOPvts3XvvverSpUvzS5xEBDXsFgxKvXo1vLRMaFxeeblPT3LS/iwFaD63ZZNXMz7EbccT3kfWk/VAc8WTTTFPDVy37v73v/9d27dvT6yEgIel01qv9QSDVqt5tLa80LYpU6z9AHgGGQ9EIuvJeiCVWK8HaSkYlJYtkxYutP6NJ1fSba3XCGl9lgIA8BKyPkFkPZByMc++HggE6o018+rYM6S3aEOk8vKk88+3liJpamxdWq/1mtZnKYB/kfHwG7K+Gch6IOVirpQbYzR+/HhlZWVJknbu3KnLLrtMbdu2jdivtLTU3hICNmpoiNTmzdbMsyUlTc9hktZrvab1WQrgX2Q8/ISsbyayHki5mCd6u+iii2J6wrlz5zarQHZj8heENDVpS22BQONzmIQCX4q+1qtv5z8JHcSmzlJ8O/MNYA+3ZZNXMz7EbccTziHrbUDWA7ZIyuzrXkVQI2TZMmnYsNj2jSVv3LbWa8qWuEnbsxTAPmSTvTieCCHrbULWA82WlNnXAa+LZ+hTLHOYFBdLa9ZIS5dKCxZY/5aXO5NRpaVWo/awYdJ551n/9uplbbddcbEVxt27R24vKCCkAQCOIuttQtYDKRXzmHLA6xIZ+tRUuGdkSEOHJlQc2zQ0dq6iwtqelOwsLrZmyklJcz0AALEh621E1gMpQ/d1pI2mhkhFs3Sp80HcmKbGzjHsC3AnssleHE+EkPUpLRqARtB9HZ7SnHVE45GRYc20Kv00JKohgYA1ZuzYY1NTtkSxlCgAwAvcnPVFRakrXyLIesD/qJTDUSkdH6WGh0jVFgrxc86R+vRJXdkSwVKiAAC3c3PWl5RIzz+f2vLFi6wH/I9KOZKmqVbn0Piouq2/ofFRyQzr0KQtU6ZI++4beX9BgXTttdLdd6e+bPFiKVEAgJO8nPWLFln/d6J88SDrAf9jTDmSItoSIgUFVpey4mJ3jY+qu7zIscdaV8jdULamsJQo4E1kk704ns7wctYXFVnb3VK+xpD1gDfFk03Mvg7bxTJDaMeOsY+PSvbkK3VnVV22zD1la0po7NzYsVYoR1tKtKSEkAYA2MvrWS95J+/JesD/6L4OWwWDVqt5tJbc0LYpU6zQjoUT46O8NnaLpUQBAKnkh6yP53XdkPdkPeBvXCmHrWKdIXTz5tiez4nxUV4cu8VSogCAVPFD1sfzum7Je7Ie8C8q5bBVrK3JeXlW625T46NCY75SqajIvWVrTLSueQAA2M0PWS95M+/JesCf6L4OW8Xamty9e8PriDo9PqqxNU6dLhsAAE7zQ9ZL5D0A96BSDluFWp3rhltIICAVFlr7uXl8lJvLBgCAk/yS9ZL7ywcgPbAkGmwXmpFVij5DaN2Qi7ZMiVtapd1cNgDeRTbZi+OZen7Kesn95QPgPfFkE5VyJEW0tUsLC61uYLQ6A0h3ZJO9OJ7OIOsBoGGsUw7HMUMoAAD+RtYDgD2olCNpUjlDKN3OAABIPbIeAJqPSjk8L1r3uYICa0ZVus8BAOB9ZD0AP2P2dXhaaKKZ2iEtWWuOjh1r3Q8AALyLrAfgd1TK4VnBoNVqHm2qwtC2KVOs/QAAgPeQ9QDSAZVyeFZZWf1W89qMkdats/YDAADeQ9YDSAdUyuFZlZX27gcAANyFrAeQDqiUw7Py8+3dDwAAuAtZDyAdMPs6PKuoyJp5taIi+lizQMC6v6go9WVDw1jSBgAQK7Lem8h6ID5cKYdnZWRYS6FIVijXFvq5pMQbIRAMSsuWSQsXWv/6dcKa0lKpVy9p2DDpvPOsf3v1YuZcAEB0ZL33kPVA/FxdKQ8Gg7r55pvVu3dvtW7dWn369NGtt94qE62pFGmpuFhatEjq3j1ye0GBtd0La5emS3ixpA0AIBFkvXeQ9UBiAsbFNdw77rhD99xzjx577DEdfPDB+vDDD3XRRRfp9ttv11VXXRXTc1RXVys3N1dVVVXKyclJconhlLrdpI49Vnr7bfd3mwqFV92/wlDrf7JPNlLVvSwYtE4+GppBN9T9sLzcnZ8TYDeyyV4cz/RA1icuFXlP1gOR4skmV48pf/vttzV69GidcsopkqRevXpp4cKFev/99x0uGdwmI0MaOtT6f2mp1KdPZCgUFFjd39zUmt7U2quBgLX26ujRyQmv0lLr9VNxnOJZ0ib0OQIAUBtZn5hU5T1ZDyTO1d3Xjz32WL366qv6z3/+I0n69NNP9eabb2rkyJENPmbXrl2qrq6OuCF9eKnblJNrr6b6OLGkDQDALmR97FJ5rMh6IHGurpTfeOONOuecc9SvXz+1atVKgwYN0pQpU3T++ec3+JgZM2YoNzc3fCssLExhieGkplqjJas12i0TqzgVXk4cJ5a0AQDYgayPXaqPFVkPJM7VlfI///nPmj9/vhYsWKCPP/5Yjz32mO6++2499thjDT7mpptuUlVVVfi2bt26FJYYTnK6NTpeToWXE8cptKRN3ZlzQwIBqbCQJW0AAI0j62OX6mNF1gOJc3Wl/LrrrgtfLR8wYIAuuOAC/eY3v9GMGTMafExWVpZycnIibkgPXus25VR4OXGc/LSkDQDAOWR97FJ9rMh6IHGurpTv2LFDLVpEFjEjI0M1NTUOlQhulsrWaDvWGnUqvJxqtS8ulq69VqrzJ60WLaztbpqYBwDgTmR97JzIe7IeSIyrK+WjRo3S7bffrr/97W9as2aNFi9erHvuuUdjxoxxumhwoVS1Rtu51qgTa6861WpfWirdfXf9k5pg0Nrupol5AADuRNbHzom8J+uBxLh6nfIffvhBN998sxYvXqxNmzapW7duOvfcczV16lRlZmbG9BysXZpeQrOMSpETm9i1Fmiy1hpN1XrhIck+TnWxdikQiWyyF8czvZD1sUtl3pP1QKR4ssnVlXI7ENTpJ9p6nIWFVvew5gSP38ImWccpmmXLrKsMTVm6lLVLkR7IJntxPNMPWR+7VOU9WQ9EiiebWqaoTEDKFBdLo0fb3xodzyymXgibZB2naLw2MQ8AwN3I+tilKu/JeiBxVMrhSxkZ9oelH8MmGccpGtYuBQDYjayPXSrynqwHEufqid4ANyFsEsfapQAALyDrE0fWA4mjUo60YMeyJoRN4li7FACQbGS9s8h6IHFUyuF7di1rQtg0j1NLwgAA/I+sdweyHkgMs6/D15KxrEkqZy33IyeWhAHchmyyF8czvZH17kPWAyyJFoGgTl/JXNbEi2HjxTIDfkU22Yvjmb7I+kheLDPgVyyJBii5y5qkatZyu0Rr8S8osLro0eIPAPAqsv4nZD3gXYwph2/5dVmTeIW69dU9aamosLbHO94OAAC3IOstZD3gbVTK4Vssa2J1Y5s8uf44O+mnbVOmJDZDLQDY5fbbb9exxx6rNm3aqH379k4XBx5C1pP1gB9QKYdvsaxJfN36AMApu3fv1plnnqnLL7/c6aLAY8h6sh7wAyrl8C2WNaFbHwBvmD59un7zm99owIABThcFHkPWk/WAH1Aph6+l+3qZdOsD4Ee7du1SdXV1xA3pi6y3dz8Aqcfs6/C94mJp9Oj0XCIk1K2voiL6WLPQUjF+7tYHwH9mzJih6dOnO10MuAhZT9YDXsaVcqSF0LIm555r/ZsOIS3RrQ+Ac2688UYFAoFGb19++WVCz33TTTepqqoqfFu3bp3NpYcXkfVkPeBVXCkHfC7UrS/a2qUlJf7v1gfAGddcc43Gjx/f6D777bdfQs+dlZWlrKyshB4L+BFZD3gblXIgDaRztz4AzsjLy1NeXp7TxQDSBlkPeBeVciBNhLr1wRnBICdKQEO+/vprbdmyRV9//bWCwaCWL18uSerbt6/atWvnbOEADyHrnUXWI1FUygEgyUpLo3cpnDmTLoWAJE2dOlWPPfZY+OdBgwZJkpYuXaqh1DAAeABZj+YIGBNtnkb/qK6uVm5urqqqqpSTk+N0cQCkmdJSaezY+jPihibfSYflelAf2WQvjicAJ5H1iCaebGL2dQBIkmDQajWP1vQZ2jZlirUfAADwHrIedqBSDgBJUlYW2Y2tLmOkdeus/QAAgPeQ9bADlXIASJLKSnv3AwAA7kLWww5UygEgSfLz7d0PAAC4C1kPO1ApB4AkKSqyZl4NTfRSVyAgFRZa+wEAAO8h62EHKuUAkCQZGdZSKFL9sA79XFLCGqYAAHgVWQ87UCkHgCQqLraWQunePXJ7QQFLpAAA4AdkPZqrpdMFAIB4BIPWDKaVldb4rKIi97c+FxdLo0d7r9wAADiBrEe6oVIOpDGvhV5pqbUWaO2lRwoKrG5jbm+FzsiQhg51uhQAgHRD1qcOWY9E0X0dSFOLFlnhPGyYdN551r+9ellh6EalpdLYsfXXAq2osLa7tdwAADiFrAe8gUo5kIauv14680xp8+bI7evXuzP0gkGr1dyY+veFtk2ZYu0HAADIesBLqJQDaeaZZ6S77mr4fmPcF3plZfVbzWszRlq3ztoPAIB0R9YD3kKlHEgjwaB0xRVN7+e20KustHc/AAD8iqwHvIdKOZBGysqkb7+NbV83hV5+vr37AQDgV2Q94D1UyoE0Ek/4uin0ioqsmVcDgej3BwJSYaG1HwAA6YysB7yHSjngMsGgtGyZtHCh9a+d471iDd+8PHeFXkaGtRSKVD+sQz+XlLh7iRcAAGpLVt6T9YD3UCkH7NaMlC0ttZYqSdbSJaFW6Kb86U/uC73iYmtpl+7dI7cXFFjb3b52KQDAR5pZo05m3pP1gPcEjIm28IB/VFdXKzc3V1VVVcrJyXG6OPCYYNAam1VZabU8FxU1EWClpdZ6HrWnDy0osJp+m0iS0Nqcdf8iQ63DdoVRQ68Tct110p13Nv91kiXuzwRwIbLJXhxPNEcqsz708GTnPVkPOC+ebKJSDjQg7sxtRsoGg1YLeUNLgQQC1muXl9sTStHeW16eNGuWtaYpgOQim+zF8USiUpn1UmrznqwHnEWlvBaCGomIO3ObmbLLllld15qydKk0dGgMbyAGtEIDziGb7MXxRCJSnfVS6vOerAecE082tUxRmQDPCAatluVozVXGWJk7ZYo0enStYCsrazikQw8MLQgaJWWdWJszI8O+Cj4AAF7iRNZLqc97sh7wBiZ6A+qIJ3PDmpmyrM0JAEDqOJH1EnkPIDqulAN1JJS5zUzZ0EypFRXRW+1DPeLctHSJk+iOBwBoDieyXiLv40HWI51wpRyoI6HMDaVs3YU1QwIBqbCwwZRlbc7YJXvZOACA/zmR9RJ5HyuyHumGSjlQR0KZa0PKsjZn00KT8tTtclhRYW0nrAEAsXAq6yXyvilkPdIRs68DUYQCQYrsXtbkiifR1h8pLLRCOsaUpbtWdKleNg5IJrLJXhxPJMLJrJfI+2jIevgJS6LVQlAjUQlnLimbFE4sGwckC9lkL44nEkXWuwtZDz9hSTTABsXF1lIoUTO3sTBm/ZGkcGLZOACAv5H17kLWI11RKQcaETVzozWrFxRY48zSfSBYErGMDAAgGch69yDrka6Y6A2IB7OPOMaGSW8BAGgaWe8Ysh7piko5EKtg0Go1jzYNQ2jblCnWfrAdy8gAAJKOrHcUWY90RaUciFVZWcPTgUpWWK9bZ+2HpGAZGQBAUpH1jiPrkY5cP6a8oqJCN9xwg1544QXt2LFDffv21dy5c3XEEUc4XTSkG2YfcYVGJ+VxOSbrBQCXI+tdgaxHunF1pfz777/Xcccdp2HDhumFF15QXl6eVq5cqQ4dOjhdNKQjZh9xDS9OesucQQDgAWS9a5D1SCeuXqf8xhtv1FtvvaWyZnQRYu1S2CYYlHr1siZ6ifZnEwhY37zl5TSJIkJozqC6vzah8XF0x0s/ZJO9OJ6wDVmPBJH1qCuebHL1mPIlS5boiCOO0JlnnqnOnTtr0KBBmjNnTqOP2bVrl6qrqyNugC0amX3EBAIyRio7o0TLyjKY/wVhzBkEAB5C1iMBZD2ay9WV8q+++kqzZ8/W/vvvr5deekmXX365rrrqKj322GMNPmbGjBnKzc0N3woLC1NYYvheA7OPfNOiQGdokX5eUqxhw6xGdlZMgcScQQDgOWQ94kTWo7lcXSmvqanR4YcfrjvuuEODBg3Sr3/9a02YMEEPPPBAg4+56aabVFVVFb6tW7cuhSVGWigultaskZYu1ftTFmiYlqpHsFyL9VOfJJYyRQhzBgGAB5H1iANZj+Zy9URv+fn5OuiggyK29e/fX88++2yDj8nKylJWVlayi4Z0l5GhYNFQnXGBFK1h1Bir19uUKdbsoQw7S1/MGQQAHkXWI0ZkPZrL1VfKjzvuOK1YsSJi23/+8x/17NnToRIhlYJBadkyaeFC61+3jcOhqxJiUVRkzQlUZ2hiWCAgFRZa+wFAuiHr4QdkPZrL1ZXy3/zmN3r33Xd1xx13aNWqVVqwYIEeeughTZw40emiIclKS62xWsOGSeedJ1eO3aKrEmLRyJxB4Z9LSrjCAiD9kPXwC7IezeXqSvmRRx6pxYsXa+HChTrkkEN06623qqSkROeff77TRUMShZaUqNsy7baxW3RVQqwamDNIBQUskQIgPZH18BuyHs3h6nXK7cDapd4SWh60oa5ibloelKVMEa9g0OriWFlpncAVFdn7u5Hs54d9yCZ7cTy9hayHn5H1CIknm1w90RvSTzxjt4YOTVmxogp1VRo71grl2mFNVyVEk5GRvN/b0lJrjdTafz8FBdbvKK3zANyErIefkfVIhKu7ryP9eG3sFl2V4AZe6QYKABJZDySCrPc3rpTDVbw4dqu42FoKha5EcEIwaLWaR+tWyXI9ANyIrAfiQ9b7H5VyuEpoSYmmxm65bUmJZHZVQop5bLCWl7qBAoBE1sMlPJT3ZL3/0X0drsKSEnCUF9bnqcNr3UABgKyH4zyW92S9/1Eph+swdguO8OhgLS92AwUAsh6O8WDek/X+x5JocC0P9SqC13lpfZ46WK7Hm8gme3E8vYusR0p5NO/Jem9iSTT4AmO3Ui9tT448PFiL5XoAeBlZ7wzyvgEuzXuy3v/ovg5PCAalZcukhQutf4NBp0vkPx4bXmUvjw/WohsoAD8g61ODvLdxvxQi6/2NK+VwvdJSaxmI2g2bBQVWiyFfQPYIDa+q2yUqNLzK91/2PhisxXI9ALyMrE8N8t7beU/W+xdjyuFqDYVHqKuO78OjOWLsm+bR4VX2YrAWUoxsshfH09vI+mYi72NH3iOF4skmuq/DtYJBq9U82ndmaNuUKXRviyqOvmnxDK/yLdbnAQBHkPXNRN7Hh7yHS1Eph2sRHgmKc6kPDw+vsheDtQAg5cj6ZiDvE0Pew4UYUw7XIjwS0NQlh0DAuuQwenS4FTiR4VW+nbWVwVoAkFJkfYJSkPe+zXqJvIfrUCmHa3l8Lg5nJLDUR1GR1Tjc1PCqoiLrZ99PxsP6PACQMmR9gpKc977Peom8h6vQfR2uFQqPukN+QgIBqbDwp8oilNAlh3iGV8XZUw4AgEaR9QlKYt4//zxZD6QalXK4FnNxJCDBSw6xDK9iMh4AgN3I+gQlKe9HjybrASewJBpcL1oXqsJCK6R904XKLs1c6qOx8WPLllmTujZl6VJ6gwFNIZvsxfH0PrI+TknKe7IesE882cSYcrgec3HEIXTJYexYK5BrB3UMlxwaG17FZDwAgGQh6+OUpLwn6wFnUCmHJzAXRxxCfdOizdDSjEsOTMYDAEgmsj5OSch7sh5wBt3XAb+yeS2TZvaUA1AL2WQvjifSmo15T9YD9qH7OgDbLzk0s6ccAABIBhvznqwHnMHs6wBiFsss7QAAwLvIeiD1uFIOIC5MxgMAgL+R9UBqUSkHEDcm4wEAwN/IeiB1qJTDl2ye4wwAALgMWQ/AL6iUw3dKS6OvDjJzJuOgAADwA7IegJ8w0Rt8pbTUmjG0dkhL1tIeY8da9wMAAO8i6wH4DZVy+EYwaLWaR1tXM7RtyhRrPwAA4D1kPQA/olIO3ygrq99qXpsx0rp11n4AAMB7yHoAfkSlHL5RWWnvfgAAwF3IegB+RKUcvpGfb+9+AADAXch6AH5EpRy+UVRkzbwaCES/PxCQCgut/QAAgPeQ9QD8iEo5fCMjw1oKRaof1qGfS0pYwxQAAK8i6wH4EZVy+EpxsbRokdS9e+T2ggJrO2uXAgDgbWQ9AL9p6XQBALsVF0ujR1szr1ZWWuPKiopoNQcAwC/IegB+QqUcvpSRIQ0d6nQpAABAspD1APyC7usAAAAAADiESjkAAAAAAA6hUg4AAAAAgEOolAMAAAAA4BAq5QAAwDFr1qzRJZdcot69e6t169bq06ePpk2bpt27dztdNAAAUoLZ1wEAgGO+/PJL1dTU6MEHH1Tfvn31+eefa8KECdq+fbvuvvtup4sHAEDSUSkHAACOGTFihEaMGBH+eb/99tOKFSs0e/ZsKuUAgLRApRwAALhKVVWVOnbs2OD9u3bt0q5du8I/V1dXp6JYAAAkBWPKAQCAa6xatUr33XefLr300gb3mTFjhnJzc8O3wsLCFJYQAAB7USkHAAC2u/HGGxUIBBq9ffnllxGPqaio0IgRI3TmmWdqwoQJDT73TTfdpKqqqvBt3bp1yX47AAAkDd3XAQCA7a655hqNHz++0X3222+/8P+/+eYbDRs2TMcee6weeuihRh+XlZWlrKwsO4oJAIDjqJQDAADb5eXlKS8vL6Z9KyoqNGzYMA0ePFhz585VixZ05AMApA8q5fC8YFAqK5MqK6X8fKmoSMrIcLpUAIBYVFRUaOjQoerZs6fuvvtubd68OXxf165dHSwZ3ISsB+BnVMrhaaWl0uTJ0vr1P20rKJBmzpSKi50rFwAgNi+//LJWrVqlVatWqaCgIOI+Y4xDpYKbkPUA/I7+YfCs0lJp7NjIkJakigpre2mpM+UCAMRu/PjxMsZEvQFkPYB04KlK+e9+9zsFAgFNmTLF6aLAYcGg1Woe7ZwttG3KFGs/AADgPWQ9gHThmUr5Bx98oAcffFCHHnqo00WBC5SV1W81r80Yad06az8AAOA9ZD2AdOGJSvm2bdt0/vnna86cOerQoYPTxYELVFbaux8AAHAXsh5AuvBEpXzixIk65ZRTdNJJJzW5765du1RdXR1xg//k59u7HwAAcBeyHkC6cH2l/KmnntLHH3+sGTNmxLT/jBkzlJubG74VFhYmuYRwQlGRNfNqIBD9/kBAKiy09gMAAN5D1gNIF66ulK9bt06TJ0/W/PnzlZ2dHdNjbrrpJlVVVYVv69atS3Ip4YSMDGspFKl+WId+LilhDVMAALyKrAeQLlxdKf/oo4+0adMmHX744WrZsqVatmyp119/Xffee69atmypYJTpNrOyspSTkxNxgz8VF0uLFkndu0duLyiwtrN2KQAA3kbWA0gHAePihUB/+OEHrV27NmLbRRddpH79+umGG27QIYcc0uRzVFdXKzc3V1VVVVTQfSoYtGZeray0xpUVFdFqDiQFf2y2IZvsxfH0P75+gBThj8028WRTyxSVKSH77LNPvYp327Zt1alTp5gq5EgPGRnS0KFOlwLwudJSa8Hg2usTFRRYfUu5VAUgych6IAXIese4uvs6AMAFSkulsWPrLxhcUWFtLy11plwAAMAeZL2jXN193Q50aQOAZggGpV696od0SCBgtaKXl9O9LQ5kk704ngDQDGR9UsSTTVwpBwA0rKys4ZCWJGOkdeus/QAAgPeQ9Y6jUg4AaFhlpb37AQAAdyHrHUelHADQsPx8e/cDAADuQtY7jko5AKBhRUXWOLJAIPr9gYBUWGjtBwAAvIesdxyVcgBAwzIyrKVQpPphHfq5pISJXwAA8Cqy3nFUygEAjSsulhYtkrp3j9xeUGBtZ+1SAAC8jax3VEunCwAA8IDiYmn0aGvm1cpKa1xZURGt5gAA+AVZ7xgq5QCA2GRkSEOHOl0KAACQLGS9I+i+DgAAAACAQ7hSjrQWDNJDBwAAPyPrAbgdlXKkrdJSafJkaf36n7YVFFiTTzKXBQAA3kfWA/ACuq8jLZWWSmPHRoa0JFVUWNtLS50pFwAAsAdZD8ArqJQj7QSDVqu5MfXvC22bMsXaDwAAeA9ZD8BLqJQj7ZSV1W81r80Yad06az8AAOA9ZD0AL6FSjrRTWWnvfgAAwF3IegBeQqUcaSc/3979AACAu5D1ALyESjnSTlGRNfNqIBD9/kBAKiy09gMAAN5D1gPwEirlSDsZGdZSKFL9sA79XFLCGqYAAHgVWQ/AS6iUIy0VF0uLFkndu0duLyiwtrN2KQAA3kbWA/CKlk4XAHBKcbE0erQ182plpTWurKiIVnMAAPyCrAfgBVTKkdYyMqShQ50uBQAASBayHoDb0X0dAAAAAACHUCkHAAAAAMAhVMoBAAAAAHAIlXIAAAAAABxCpRwAAAAAAIdQKQcAAAAAwCFUygEAAAAAcAiVcgAAAAAAHEKlHAAAAAAAh1ApBwAAAADAIVTKAQAAAABwCJVyAAAAAAAcQqUcAAAAAACHtHS6AMlmjJEkVVdXO1wSAAAsoUwKZRSah6wHALhNPFnv+0r5Dz/8IEkqLCx0uCQAAET64YcflJub63QxPI+sBwC4VSxZHzA+b6avqanRN998o3322UeBQMDW566urlZhYaHWrVunnJwcW5871Xgv7uWn98N7cS8/vR8vvBdjjH744Qd169ZNLVowkqy5kpn1qeaF399k4b3z3nnv6SMd3ns8We/7K+UtWrRQQUFBUl8jJyfHN79MvBf38tP74b24l5/ej9vfC1fI7ZOKrE81t//+JhPvnfeebnjv/n3vsWY9zfMAAAAAADiESjkAAAAAAA6hUt4MWVlZmjZtmrKyspwuSrPxXtzLT++H9+Jefno/fnovSD/p/PvLe+e9pxvee3q+92h8P9EbAAAAAABuxZVyAAAAAAAcQqUcAAAAAACHUCkHAAAAAMAhVMoBAAAAAHAIlfIGzJgxQ0ceeaT22Wcfde7cWaeffrpWrFjR6GPmzZunQCAQccvOzk5RiRt2yy231CtXv379Gn3MM888o379+ik7O1sDBgzQ3//+9xSVtnG9evWq914CgYAmTpwYdX+3fSZvvPGGRo0apW7duikQCOi5556LuN8Yo6lTpyo/P1+tW7fWSSedpJUrVzb5vLNmzVKvXr2UnZ2to48+Wu+//36S3sFPGnsve/bs0Q033KABAwaobdu26tatmy688EJ98803jT5nIr+rdmnqsxk/fny9so0YMaLJ53XbZyMp6t9QIBDQXXfd1eBzOvXZxPJdvHPnTk2cOFGdOnVSu3btdMYZZ2jjxo2NPm+if2tAqqxZs0aXXHKJevfurdatW6tPnz6aNm2adu/e7XTRUuL222/XscceqzZt2qh9+/ZOFyepnMgJN2gqq/wskXqGX8yePVuHHnqocnJylJOTo2OOOUYvvPCC08VyHJXyBrz++uuaOHGi3n33Xb388svas2ePfvnLX2r79u2NPi4nJ0eVlZXh29q1a1NU4sYdfPDBEeV68803G9z37bff1rnnnqtLLrlEn3zyiU4//XSdfvrp+vzzz1NY4ug++OCDiPfx8ssvS5LOPPPMBh/jps9k+/btGjhwoGbNmhX1/jvvvFP33nuvHnjgAb333ntq27athg8frp07dzb4nE8//bSuvvpqTZs2TR9//LEGDhyo4cOHa9OmTcl6G5Iafy87duzQxx9/rJtvvlkff/yxSktLtWLFCp122mlNPm88v6t2auqzkaQRI0ZElG3hwoWNPqcbPxtJEe+hsrJSjz76qAKBgM4444xGn9eJzyaW7+Lf/OY3+stf/qJnnnlGr7/+ur755hsVFxc3+ryJ/K0BqfTll1+qpqZGDz74oP71r3/pj3/8ox544AH9z//8j9NFS4ndu3frzDPP1OWXX+50UZLKqZxwg1hy168SrWf4QUFBgX73u9/po48+0ocffqgTTjhBo0eP1r/+9S+ni+Ysg5hs2rTJSDKvv/56g/vMnTvX5Obmpq5QMZo2bZoZOHBgzPufddZZ5pRTTonYdvTRR5tLL73U5pI13+TJk02fPn1MTU1N1Pvd+pkYY4wks3jx4vDPNTU1pmvXruauu+4Kb9u6davJysoyCxcubPB5jjrqKDNx4sTwz8Fg0HTr1s3MmDEjKeWOpu57ieb99983kszatWsb3Cfe39VkifZ+xo0bZ0aPHh3X83jlsxk9erQ54YQTGt3HLZ9N3e/irVu3mlatWplnnnkmvM8XX3xhJJl33nkn6nMk+rcGOO3OO+80vXv3droYKeXmHLeDG3LCDWLJKj+LpZ7hZx06dDAPP/yw08VwFFfKY1RVVSVJ6tixY6P7bdu2TT179lRhYaGrWn1Wrlypbt26ab/99tP555+vr7/+usF933nnHZ100kkR24YPH6533nkn2cWMy+7du/Xkk0/q4osvViAQaHA/t34mdZWXl2vDhg0Rxz43N1dHH310g8d+9+7d+uijjyIe06JFC5100kmu+7yqqqoUCASa7IYYz+9qqi1btkydO3fWgQceqMsvv1zfffddg/t65bPZuHGj/va3v+mSSy5pcl83fDZ1v4s/+ugj7dmzJ+I49+vXTz169GjwOCfytwa4QVVVVZPnIfAOr+QEki/WeobfBINBPfXUU9q+fbuOOeYYp4vjKCrlMaipqdGUKVN03HHH6ZBDDmlwvwMPPFCPPvqonn/+eT355JOqqanRscceq/Xr16ewtPUdffTRmjdvnl588UXNnj1b5eXlKioq0g8//BB1/w0bNqhLly4R27p06aINGzakorgxe+6557R161aNHz++wX3c+plEEzq+8Rz7b7/9VsFg0PWf186dO3XDDTfo3HPPVU5OToP7xfu7mkojRozQ448/rldffVW///3v9frrr2vkyJEKBoNR9/fKZ/PYY49pn332abK7txs+m2jfxRs2bFBmZma9xp7GjnMif2uA01atWqX77rtPl156qdNFgU28khNIrljrGX7yz3/+U+3atVNWVpYuu+wyLV68WAcddJDTxXJUS6cL4AUTJ07U559/3uT4yWOOOSailefYY49V//799eCDD+rWW29NdjEbNHLkyPD/Dz30UB199NHq2bOn/vznP8d0dcytHnnkEY0cOVLdunVrcB+3fibpZM+ePTrrrLNkjNHs2bMb3dfNv6vnnHNO+P8DBgzQoYceqj59+mjZsmU68cQTHSxZ8zz66KM6//zzm5wA0Q2fTazfxYCb3Xjjjfr973/f6D5ffPFFxESKFRUVGjFihM4880xNmDAh2UVMmkTeO+B36ZhtBx54oJYvX66qqiotWrRI48aN0+uvv57WFXMq5U2YNGmS/vrXv+qNN95QQUFBXI9t1aqVBg0apFWrViWpdIlp3769DjjggAbL1bVr13ozF2/cuFFdu3ZNRfFisnbtWr3yyisqLS2N63Fu/UwkhY/vxo0blZ+fH96+ceNGHXbYYVEfs++++yojI8O1n1eoQr527Vq99tprjV4lj6ap31Un7bffftp33321atWqqJVyt382klRWVqYVK1bo6aefjvuxqf5sGvou7tq1q3bv3q2tW7dGXC1v7Dgn8rcG2OWaa65ptIeXZH2/hHzzzTcaNmyYjj32WD300ENJLl1yxfve/c4LOYHkak49w8syMzPVt29fSdLgwYP1wQcfaObMmXrwwQcdLplz6L7eAGOMJk2apMWLF+u1115T7969436OYDCof/7znxEnfW6wbds2rV69usFyHXPMMXr11Vcjtr388suuGusxd+5cde7cWaecckpcj3PrZyJJvXv3VteuXSOOfXV1td57770Gj31mZqYGDx4c8Ziamhq9+uqrjn9eoQr5ypUr9corr6hTp05xP0dTv6tOWr9+vb777rsGy+bmzybkkUce0eDBgzVw4MC4H5uqz6ap7+LBgwerVatWEcd5xYoV+vrrrxs8zon8rQF2ycvLU79+/Rq9ZWZmSrKukA8dOlSDBw/W3Llz1aKFt0/b4nnv6cALOYHksKOe4Sc1NTXatWuX08VwlrPzzLnX5ZdfbnJzc82yZctMZWVl+LZjx47wPhdccIG58cYbwz9Pnz7dvPTSS2b16tXmo48+Muecc47Jzs42//rXv5x4C2HXXHONWbZsmSkvLzdvvfWWOemkk8y+++5rNm3aZIyp/z7eeust07JlS3P33XebL774wkybNs20atXK/POf/3TqLUQIBoOmR48e5oYbbqh3n9s/kx9++MF88skn5pNPPjGSzD333GM++eST8Izkv/vd70z79u3N888/bz777DMzevRo07t3b/Pjjz+Gn+OEE04w9913X/jnp556ymRlZZl58+aZf//73+bXv/61ad++vdmwYYNj72X37t3mtNNOMwUFBWb58uURf0O7du1q8L009bvq1Pv54YcfzLXXXmveeecdU15ebl555RVz+OGHm/3339/s3Lmzwffjxs8mpKqqyrRp08bMnj076nO45bOJ5bv4sssuMz169DCvvfaa+fDDD80xxxxjjjnmmIjnOfDAA01paWn451j+1gAnrV+/3vTt29eceOKJZv369RG//+lg7dq15pNPPjHTp0837dq1C3+n/fDDD04XzVZO5YQbxJJVfhVLtvnVjTfeaF5//XVTXl5uPvvsM3PjjTeaQCBg/vGPfzhdNEdRKW+ApKi3uXPnhvcZMmSIGTduXPjnKVOmmB49epjMzEzTpUsXc/LJJ5uPP/449YWv4+yzzzb5+fkmMzPTdO/e3Zx99tlm1apV4fvrvg9jjPnzn/9sDjjgAJOZmWkOPvhg87e//S3FpW7YSy+9ZCSZFStW1LvP7Z/J0qVLo/5ehcpcU1Njbr75ZtOlSxeTlZVlTjzxxHrvs2fPnmbatGkR2+67777w+zzqqKPMu+++6+h7KS8vb/BvaOnSpQ2+l6Z+V516Pzt27DC//OUvTV5enmnVqpXp2bOnmTBhQr2TJi98NiEPPvigad26tdm6dWvU53DLZxPLd/GPP/5orrjiCtOhQwfTpk0bM2bMmHoVl7qPieVvDXDS3LlzG/z9Twfjxo1rMkP8womccINYssqvYsk2v7r44otNz549TWZmpsnLyzMnnnhi2lfIjTEmYIwxzbzYDgAAAAAAEuDtwUkAAAAAAHgYlXIAAAAAABxCpRwAAAAAAIdQKQcAAAAAwCFUygEAAAAAcAiVcgAAAAAAHEKlHAAAAAAAh1ApBwAAAADAIVTKAQAAAABwCJVywEPGjx+vQCBQ77Zq1Spbnn/evHlq3769Lc+VqDfeeEOjRo1St27dFAgE9NxzzzlaHgAAUo28B9ILlXLAY0aMGKHKysqIW+/evZ0uVj179uxJ6HHbt2/XwIEDNWvWLJtLBACAd5D3QPqgUg54TFZWlrp27Rpxy8jIkCQ9//zzOvzww5Wdna399ttP06dP1969e8OPveeeezRgwAC1bdtWhYWFuuKKK7Rt2zZJ0rJly3TRRRepqqoq3CJ/yy23SFLUFuz27dtr3rx5kqQ1a9YoEAjo6aef1pAhQ5Sdna358+dLkh5++GH1799f2dnZ6tevn/70pz81+v5Gjhyp2267TWPGjLHhaAEA4E3kPZA+WjpdAAD2KCsr04UXXqh7771XRUVFWr16tX79619LkqZNmyZJatGihe6991717t1bX331la644gpdf/31+tOf/qRjjz1WJSUlmjp1qlasWCFJateuXVxluPHGG/WHP/xBgwYNCgf11KlTdf/992vQoEH65JNPNGHCBLVt21bjxo2z9wAAAJAGyHvAhwwAzxg3bpzJyMgwbdu2Dd/Gjh1rjDHmxBNPNHfccUfE/k888YTJz89v8PmeeeYZ06lTp/DPc+fONbm5ufX2k2QWL14csS03N9fMnTvXGGNMeXm5kWRKSkoi9unTp49ZsGBBxLZbb73VHHPMMU291QZfFwAAvyPvgfTClXLAY4YNG6bZs2eHf27btq0k6dNPP9Vbb72l22+/PXxfMBjUzp07tWPHDrVp00avvPKKZsyYoS+//FLV1dXau3dvxP3NdcQRR4T/v337dq1evVqXXHKJJkyYEN6+d+9e5ebmNvu1AADwM/IeSB9UygGPadu2rfr27Vtv+7Zt2zR9+nQVFxfXuy87O1tr1qzRqaeeqssvv1y33367OnbsqDfffFOXXHKJdu/e3WhIBwIBGWMitkWb2CV0whAqjyTNmTNHRx99dMR+oTFxAAAgOvIeSB9UygGfOPzww7VixYqoAS5JH330kWpqavSHP/xBLVpYczz++c9/jtgnMzNTwWCw3mPz8vJUWVkZ/nnlypXasWNHo+Xp0qWLunXrpq+++krnn39+vG8HAABEQd4D/kOlHPCJqVOn6tRTT1WPHj00duxYtWjRQp9++qk+//xz3Xbbberbt6/27Nmj++67T6NGjdJbb72lBx54IOI5evXqpW3btunVV1/VwIED1aZNG7Vp00YnnHCC7r//fh1zzDEKBoO64YYb1KpVqybLNH36dF111VXKzc3ViBEjtGvXLn344Yf6/vvvdfXVV0d9zLZt2yLWYS0vL9fy5cvVsWNH9ejRo3kHCQAAjyPvAR9yelA7gNiNGzfOjB49usH7X3zxRXPsscea1q1bm5ycHHPUUUeZhx56KHz/PffcY/Lz803r1q3N8OHDzeOPP24kme+//z68z2WXXWY6depkJJlp06YZY4ypqKgwv/zlL03btm3N/vvvb/7+979Hnfjlk08+qVem+fPnm8MOO8xkZmaaDh06mJ///OemtLS0wfewdOlSI6nebdy4cXEcKQAAvIu8B9JLwJg6A0cAAAAAAEBKtHC6AAAAAAAApCsq5QAAAAAAOIRKOQAAAAAADqFSDgAAAACAQ6iUAwAAAADgECrlAAAAAAA4hEo5AAAAAAAOoVIOAAAAAIBDqJQDAAAAAOAQKuUAAAAAADiESjkAAAAAAA75/12O0K9LME+cAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1200x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "# 创建一个简单的数据集\n",
    "np.random.seed(0)\n",
    "X_train = np.random.normal(loc=10.0, scale=3.0, size=(100, 2))  # 训练数据集\n",
    "X_test = np.random.normal(loc=12.0, scale=4.0, size=(30, 2))    # 测试数据集\n",
    "\n",
    "# 实例化StandardScaler\n",
    "sc_X = StandardScaler()\n",
    "\n",
    "# 对数据进行标准化\n",
    "X_train_scaled = sc_X.fit_transform(X_train)\n",
    "X_test_scaled = sc_X.transform(X_test)\n",
    "\n",
    "# 绘制数据可视化\n",
    "plt.figure(figsize=(12, 6))\n",
    "\n",
    "# 绘制原始数据\n",
    "plt.subplot(1, 2, 1)\n",
    "plt.scatter(X_train[:, 0], X_train[:, 1], color='blue', label='Training Set')\n",
    "plt.scatter(X_test[:, 0], X_test[:, 1], color='red', label='Test Set')\n",
    "plt.title('Before Scaling')\n",
    "plt.xlabel('Feature 1')\n",
    "plt.ylabel('Feature 2')\n",
    "plt.legend()\n",
    "\n",
    "# 绘制标准化后的数据\n",
    "plt.subplot(1, 2, 2)\n",
    "plt.scatter(X_train_scaled[:, 0], X_train_scaled[:, 1], color='blue', label='Training Set')\n",
    "plt.scatter(X_test_scaled[:, 0], X_test_scaled[:, 1], color='red', label='Test Set')\n",
    "plt.title('After Standard Scaling')\n",
    "plt.xlabel('Feature 1')\n",
    "plt.ylabel('Feature 2')\n",
    "plt.legend()\n",
    "\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8fd5ffc4",
   "metadata": {},
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
